package com.kehutong.payfees.entity;

import com.kehutong.common.entity.DataEntity;
import com.kehutong.payfees.enums.*;
import org.coraframework.json.annotation.JSONField;
import org.coraframework.orm.annotation.Column;
import org.coraframework.orm.annotation.Table;
import org.coraframework.orm.annotation.UnSave;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

@Table(value = "t_charge_month_read", comment="月度抄表", multi = true)
public class ChargeMonthRead extends DataEntity {

    private static final long serialVersionUID = 9067748977001583215L;

    protected ChargeMonthRead(String id) {
        super(id);
    }

    @Column(comment = "小区编号")
    private String communityNo;

    @Column(comment = "抄表月份")
    private String readMonth;

    @Column(comment = "房屋id")
    private String houseId;

    @Column(comment = "客户姓名")
    private String contactName;

    @Column(comment = "仪表Id")
    private String instrumentId;

    @Column(comment = "仪表编号")
    private String instrumentNo;

    @Column(comment = "仪表类型id")
    private String instrumentTypeId;

    @Column(comment = "应用类型")
    private AppType appType;

    @UnSave
    private String instrumentTypeName;

    @Column(comment = "最大读数")
    private UserInstrumentMaxRead maxRead;

    @Column(comment = "上次/初始读数")
    private BigDecimal lateRead;

    @Column(comment = "上次/初始读数日期")
    private LocalDate lateReadDate;

    @Column(comment = "本次读数")
    private BigDecimal currentRead;

    @Column(comment = "本次读数日期")
    private LocalDate currentReadDate;

    @Column(comment = "仪表行度")
    private BigDecimal lineMeasure;

    @Column(comment = "仪表倍率")
    private BigDecimal ratio;

    @Column(comment = "计费数量")
    private BigDecimal billNumber;

    @Column(dbType = "TEXT", comment="执行标准")
    private List<String> chooseIds;

    @Column(comment = "数据来源")
    private MonthReadWayType wayType;

    @Column(comment = "费用状态")
    private boolean feeState;

    @Column(comment = "锁定状态")
    private boolean lockState;

    @JSONField(serialize = false)
    @Column(comment = "逻辑删除")
    private boolean deleted;

    @Column(comment = "操作人")
    private String operator;

    @UnSave
    private String houseInfo;

    public String getCommunityNo() {
        return communityNo;
    }

    public void setCommunityNo(String communityNo) {
        this.communityNo = communityNo;
    }

    public String getReadMonth() {
        return readMonth;
    }

    public void setReadMonth(String readMonth) {
        this.readMonth = readMonth;
    }

    public String getHouseId() {
        return houseId;
    }

    public void setHouseId(String houseId) {
        this.houseId = houseId;
    }

    public String getContactName() {
        return contactName;
    }

    public void setContactName(String contactName) {
        this.contactName = contactName;
    }

    public String getInstrumentNo() {
        return instrumentNo;
    }

    public void setInstrumentNo(String instrumentNo) {
        this.instrumentNo = instrumentNo;
    }

    public String getInstrumentTypeId() {
        return instrumentTypeId;
    }

    public void setInstrumentTypeId(String instrumentTypeId) {
        this.instrumentTypeId = instrumentTypeId;
    }

    public AppType getAppType() {
        return appType;
    }

    public void setAppType(AppType appType) {
        this.appType = appType;
    }

    public String getInstrumentTypeName() {
        return instrumentTypeName;
    }

    public void setInstrumentTypeName(String instrumentTypeName) {
        this.instrumentTypeName = instrumentTypeName;
    }

    public UserInstrumentMaxRead getMaxRead() {
        return maxRead;
    }

    public void setMaxRead(UserInstrumentMaxRead maxRead) {
        this.maxRead = maxRead;
    }

    public BigDecimal getLateRead() {
        return lateRead;
    }

    public void setLateRead(BigDecimal lateRead) {
        this.lateRead = lateRead;
    }

    public BigDecimal getCurrentRead() {
        return currentRead;
    }

    public void setCurrentRead(BigDecimal currentRead) {
        this.currentRead = currentRead;
    }

    public LocalDate getLateReadDate() {
        return lateReadDate;
    }

    public void setLateReadDate(LocalDate lateReadDate) {
        this.lateReadDate = lateReadDate;
    }

    public LocalDate getCurrentReadDate() {
        return currentReadDate;
    }

    public void setCurrentReadDate(LocalDate currentReadDate) {
        this.currentReadDate = currentReadDate;
    }

    public BigDecimal getLineMeasure() {
        return lineMeasure;
    }

    public void setLineMeasure(BigDecimal lineMeasure) {
        this.lineMeasure = lineMeasure;
    }

    public BigDecimal getRatio() {
        return ratio;
    }

    public void setRatio(BigDecimal ratio) {
        this.ratio = ratio;
    }

    public BigDecimal getBillNumber() {
        return billNumber;
    }

    public void setBillNumber(BigDecimal billNumber) {
        this.billNumber = billNumber;
    }

    public List<String> getChooseIds() {
        return chooseIds;
    }

    public void setChooseIds(List<String> chooseIds) {
        this.chooseIds = chooseIds;
    }

    public MonthReadWayType getWayType() {
        return wayType;
    }

    public void setWayType(MonthReadWayType wayType) {
        this.wayType = wayType;
    }

    public boolean isFeeState() {
        return feeState;
    }

    public void setFeeState(boolean feeState) {
        this.feeState = feeState;
    }

    public boolean isLockState() {
        return lockState;
    }

    public void setLockState(boolean lockState) {
        this.lockState = lockState;
    }

    public boolean isDeleted() {
        return deleted;
    }

    public void setDeleted(boolean deleted) {
        this.deleted = deleted;
    }

    public String getOperator() {
        return operator;
    }

    public void setOperator(String operator) {
        this.operator = operator;
    }

    public String getHouseInfo() {
        return houseInfo;
    }

    public void setHouseInfo(String houseInfo) {
        this.houseInfo = houseInfo;
    }

    public String getInstrumentId() {
        return instrumentId;
    }

    public void setInstrumentId(String instrumentId) {
        this.instrumentId = instrumentId;
    }
}
